home *** CD-ROM | disk | FTP | other *** search
/ Languguage OS 2 / Languguage OS II Version 10-94 (Knowledge Media)(1994).ISO / language / embedded / mcu11 / hc11help.arc / HC11WORK.ASM < prev    next >
Assembly Source File  |  1987-10-12  |  3KB  |  104 lines

  1. *
  2. *
  3. *        THIS FILE CONTAINS PROGRAM SEGMENTS TO PROGRAM AND ERASE
  4. *        THE ON-CHIP EEPROM
  5. *
  6.          ORG       $E000
  7. *
  8. *        TO PROGRAM AN EEPROM BYTE
  9. *
  10.  
  11. *  ON ENTRY, A = DATA TO BE PROGRAMMED
  12. *            X = AN EEPROM ADDRESS
  13.  
  14. PROG     LDAB      #$02
  15.          STAB      $103B     SET EELAT BIT (EEPGM = 0)
  16.          STAA      0,X       STORE DATA TO EEPROM ADDRESS
  17.          LDAB      #$03
  18.          STAB      $103B     SET EEPGM BIT (EELAT = 1)
  19.          JSR       DLY10     DELAY 10 MS
  20.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  21. HERE1    BRA       HERE1
  22.  
  23. *
  24. *        TO BULK ERASE THE 512-BYTE EEPROM
  25. *
  26.  
  27. *  CONFIG REGISTER NOT AFFECTED
  28.  
  29. BULKE    LDAB      #$06
  30.          STAB      $103B     SET TO BULK ERASE MODE
  31.          STAB      $B600     WRITE ANY DATA TO ANY EEPROM ADDRESS
  32.          LDAB      #$07
  33.          STAB      $103B     TURN ON PROGRAMMING VOLTAGE
  34.          JSR       DLY10     DELAY 10MS
  35.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  36. HERE2    BRA       HERE2
  37.  
  38. *
  39. *        TO ERASE A ROW ( 16 BYTES)
  40. *
  41.  
  42. *  ON ENTRY, X = ANY ADDRESS IN THE ROW TO BE ERASED
  43.  
  44. ROWE     LDAB      #$0E
  45.          STAB      $103B     SET TO ROW ERASE MODE
  46.          STAB      0,X       WRITE ANY DATA TO ANY ADDRESS IN ROW
  47.          LDAB      #$0F
  48.          STAB      $103B     TURN ON HIGH VOLTAGE
  49.          JSR       DLY10     DELAY 10MS
  50.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  51. HERE3    BRA       HERE3
  52.  
  53. *
  54. *        TO ERASE A SINGLE BYTE
  55. *
  56.  
  57. *  ON ENTRY, X = ADDRESS OF BYTE TO BE ERASED
  58.  
  59. BYTEE    LDAB      #$16
  60.          STAB      $103B     SET TO BYTE ERASE MODE
  61.          STAB      0,X       WRITE ANY DATA TO THE ADDRESS TO ERASE
  62.          LDAB      #$17
  63.          STAB      $103B     TURN ON HIGH VOLTAGE
  64.          JSR       DLY10     DELAY 10MS
  65.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  66. HERE4    BRA       HERE4
  67. *
  68. *        TO PROGRAM THE CONFIG REGISTER
  69. *
  70.  
  71. *  ON ENTRY, A = DATA TO BE PROGRAMMED INTO CONFIG REGISTER,
  72. *            CONFIG REGISTER HAD BEEN ERASED PREVIOUSLY
  73.  
  74. PROGC    LDAB      #$02
  75.          STAB      $103B     SET EELAT BIT (EEPGM = 0)
  76.          STAA      $103F     STORE DATA TO CONFIG ADDRESS
  77.          LDAB      #$03
  78.          STAB      $103B     TURN ON PROGRAMMING VOLTAGE
  79.          JSR       DLY10     DELAY 10MS
  80.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  81. HERE5    BRA       HERE5
  82.  
  83. *
  84. *        TO ERASE THE CONFIG REGISTER
  85. *
  86.  
  87. BULKC    LDAB      #$06
  88.          STAB      $103B     SET BULK ERASE MODE
  89.          STAB      $103F     WRITE ANY DATA TO CONFIG
  90.          LDAB      #$07
  91.          STAB      $103B     TURN ON PROGRAMMING VOLTAGE
  92.          JSR       DLY10     DELAY 10MS
  93.          CLR       $103B     TURN OFF HIGH VOLTAGE AND SET TO READ MODE
  94. HERE6    BRA       HERE6
  95. *
  96. *        TO DELAY 10MS
  97. *
  98.  
  99. DLY10    RTS                 PLEASE PUT IN YOUR OWN DELAY ROUTINE
  100.  
  101. *
  102. *        END OF PROGRAM SEGMENTS
  103. *
  104.